home *** CD-ROM | disk | FTP | other *** search
/ MPEG Toolkit / MPEG Toolkit.iso / win / med-lib / mdctrl.z / MDCLOAD.C < prev    next >
C/C++ Source or Header  |  1996-02-11  |  20KB  |  333 lines

  1. /* ********************************************************************** */
  2. /* ***                 Name: mdCLoad.c                                *** */
  3. /* ***                 (c) 1993, 1994, 1995 MediaDynamics Inc.        *** */
  4. /* ***                                                                *** */
  5. /* ***                                                                *** */
  6. /* ***                                                                *** */
  7. /* ***                   ___              ___                         *** */
  8. /* ***                  |   \            /   |                        *** */
  9. /* ***                  |    \          /    |                        *** */
  10. /* ***                  |     \        /     |                        *** */
  11. /* ***                  |      \   __ /___   |                        *** */
  12. /* ***                  |  |\   \ |       |  |\                       *** */
  13. /* ***                  |  | \   \|  -----|  | \                      *** */
  14. /* ***                  |  |  \   \/   /  |  |  \                     *** */
  15. /* ***                  |  |   \      /   |  |\  \                    *** */
  16. /* ***                  |  |    \    /    |  | |  |                   *** */
  17. /* ***                  |  |     \  /|    |  | |  |                   *** */
  18. /* ***                  |__|      \/ |    |__| |  |                   *** */
  19. /* ***                            |  |         |  |                   *** */
  20. /* ***                            |  |        /  /                    *** */
  21. /* ***                            |  |-------/  /                     *** */
  22. /* ***                            |____________/                      *** */
  23. /* ***                                                                *** */
  24. /* ***                                                                *** */
  25. /* ***                                                                *** */
  26. /* ***                                                                *** */
  27. /* ********************************************************************** */
  28.  
  29.  
  30. /* ********************************************************************** */
  31. /* ***                                                                *** */
  32. /* *** NOTICE  NOTICE  NOTICE  NOTICE  NOTICE  NOTICE  NOTICE  NOTICE *** */
  33. /* ***                                                                *** */
  34. /* ***  (C) Copyright MediaDynamics Inc. 1995.  All rights reserved.  *** */
  35. /* ***                                                                *** */
  36. /* ***  You have a royalty-free right to use these sample files as    *** */
  37. /* ***  long as the resulting application is in a compiled (runtime)  *** */
  38. /* ***  form.  You do not have the right to redistribute source code  *** */
  39. /* ***  within your product or application without the express        *** */
  40. /* ***  written consent of MediaDynamics Inc.                         *** */
  41. /* ***                                                                *** */
  42. /* ********************************************************************** */
  43.  
  44. /* The following pragmas are for Visual C++ */
  45. #pragma warning ( disable: 4100 )  /*  disable the unreferenced formal */
  46. #pragma warning ( disable: 4001 )  /*  disable the nonstandard comment */
  47. #pragma warning ( disable: 4213 )  /*  disable the cast on l-value     */
  48.  
  49. #include <Windows.h>
  50. #include "mdcfunc.h"  
  51.  
  52. #define  MDCTRL_DLL "mdctrl.dll" 
  53.  
  54. BOOL WINAPI UnloadMDCtrlLibrary( void );
  55.  
  56.  
  57. /* ********************************************************************** */
  58. /* ***                     LoadMDCtrlLibrary                          *** */
  59. /* ***                                                                *** */
  60. /* ***  Load the Media Control Library functions.                     *** */
  61. /* ***                                                                *** */
  62. /* ********************************************************************** */
  63. BOOL WINAPI LoadMDCtrlLibrary( void )
  64. {
  65.     UINT uOldSEMVal;
  66.     
  67.     uOldSEMVal = SetErrorMode( SEM_NOOPENFILEERRORBOX );  
  68.     
  69.         mhInstMDCtrl = LoadLibrary( MDCTRL_DLL );
  70.     
  71.     SetErrorMode( uOldSEMVal );
  72.     
  73.     if ( mhInstMDCtrl < HINSTANCE_ERROR )
  74.         return FALSE;
  75.     
  76.     
  77. /* ********************************************************************** */
  78. /* ***                 Version Check                                  *** */ 
  79. /* ********************************************************************** */
  80.     if ( ( (FARPROC) mdGetVersion = GetProcAddress( mhInstMDCtrl, MDGETVERSION ) ) == (FARPROC) NULL )
  81.     {
  82.         UnloadMDCtrlLibrary( );
  83.         return FALSE;          
  84.     }
  85.     
  86.     if ( mdGetVersion() < MD_VERSION_BASE ) 
  87.     {      
  88.         UnloadMDCtrlLibrary( );
  89.         return FALSE;
  90.     }
  91.     
  92. /* ********************************************************************** */
  93. /* ***      Prototypes:      Control Functions   (17)                 *** */ 
  94. /* ********************************************************************** */
  95.     (FARPROC) mdOpen                     = GetProcAddress( mhInstMDCtrl, MDOPEN );
  96.     (FARPROC) mdOpenLite                 = GetProcAddress( mhInstMDCtrl, MDOPENLITE );
  97.     (FARPROC) mdClose                    = GetProcAddress( mhInstMDCtrl, MDCLOSE );
  98.     (FARPROC) mdPlay                     = GetProcAddress( mhInstMDCtrl, MDPLAY );
  99.     (FARPROC) mdPause                    = GetProcAddress( mhInstMDCtrl, MDPAUSE );
  100.     (FARPROC) mdStep                     = GetProcAddress( mhInstMDCtrl, MDSTEP );
  101.     (FARPROC) mdStop                     = GetProcAddress( mhInstMDCtrl, MDSTOP );
  102.     (FARPROC) mdGotoFrame                = GetProcAddress( mhInstMDCtrl, MDGOTOFRAME );
  103.     (FARPROC) mdRewind                   = GetProcAddress( mhInstMDCtrl, MDREWIND );
  104.     (FARPROC) mdRestart                  = GetProcAddress( mhInstMDCtrl, MDRESTART );
  105.     (FARPROC) mdOpenDevice               = GetProcAddress( mhInstMDCtrl, MDOPENDEVICE );
  106.     (FARPROC) mdCloseDevice              = GetProcAddress( mhInstMDCtrl, MDCLOSEDEVICE );
  107.  
  108.  
  109. /* ********************************************************************** */
  110. /* ***      Prototypes:      Custom Control Functions  (4)            *** */ 
  111. /* ********************************************************************** */
  112.     (FARPROC) mdCloseInterface           = GetProcAddress( mhInstMDCtrl, MDCLOSEINTERFACE );
  113.     (FARPROC) mdOpenInterface            = GetProcAddress( mhInstMDCtrl, MDOPENINTERFACE );
  114.     (FARPROC) mdGetButtonClicked         = GetProcAddress( mhInstMDCtrl, MDGETBUTTONCLICKED );
  115.     (FARPROC) mdSetInterfaceNo           = GetProcAddress( mhInstMDCtrl, MDSETINTERFACENO );
  116.  
  117.  
  118. /* ********************************************************************** */
  119. /* ***      Prototypes:      Visual Basic Specific (1)                *** */ 
  120. /* ********************************************************************** */
  121.     (FARPROC) mdVBVOpen                  = GetProcAddress( mhInstMDCtrl, MDVBVOPEN );
  122.  
  123.  
  124. /* ********************************************************************** */
  125. /* ***      Prototypes:      Window Control Functions   (6)           *** */ 
  126. /* ********************************************************************** */
  127.     (FARPROC) mdHide                     = GetProcAddress( mhInstMDCtrl, MDHIDE );
  128.     (FARPROC) mdShow                     = GetProcAddress( mhInstMDCtrl, MDSHOW );
  129.     (FARPROC) mdHideVideo                = GetProcAddress( mhInstMDCtrl, MDHIDEVIDEO );
  130.     (FARPROC) mdShowVideo                = GetProcAddress( mhInstMDCtrl, MDSHOWVIDEO );
  131.     (FARPROC) mdHideCtrl                 = GetProcAddress( mhInstMDCtrl, MDHIDECTRL );
  132.     (FARPROC) mdShowCtrl                 = GetProcAddress( mhInstMDCtrl, MDSHOWCTRL );
  133.  
  134. /* ********************************************************************** */
  135. /* ***      Prototypes: Parameter Setting Functions  (26)             *** */ 
  136. /* ********************************************************************** */
  137.     (FARPROC) mdSetClip                  = GetProcAddress( mhInstMDCtrl, MDSETCLIP );   
  138.     (FARPROC) mdSetWinPos                = GetProcAddress( mhInstMDCtrl, MDSETWINPOS );
  139.     (FARPROC) mdSetWinSize               = GetProcAddress( mhInstMDCtrl, MDSETWINSIZE );
  140.     (FARPROC) mdSetVideoWinPos           = GetProcAddress( mhInstMDCtrl, MDSETVIDEOWINPOS );
  141.     (FARPROC) mdSetVideoWinSize          = GetProcAddress( mhInstMDCtrl, MDSETVIDEOWINSIZE );
  142.     (FARPROC) mdSetCtrlWinPos            = GetProcAddress( mhInstMDCtrl, MDSETCTRLWINPOS );
  143.     (FARPROC) mdSetCtrlWinSize           = GetProcAddress( mhInstMDCtrl, MDSETCTRLWINSIZE ); 
  144.  
  145.     (FARPROC) mdSetWindowMoveable        = GetProcAddress( mhInstMDCtrl, MDSETWINDOWMOVEABLE );
  146.     (FARPROC) mdSetWindowInteractive     = GetProcAddress( mhInstMDCtrl, MDSETWINDOWINTERACTIVE );
  147.  
  148.     (FARPROC) mdSetAudioLevel            = GetProcAddress( mhInstMDCtrl, MDSETAUDIOLEVEL );
  149.     (FARPROC) mdSetAudioMute             = GetProcAddress( mhInstMDCtrl, MDSETAUDIOMUTE );
  150.  
  151.     (FARPROC) mdSetCtrlType              = GetProcAddress( mhInstMDCtrl, MDSETCTRLTYPE );
  152.  
  153.     (FARPROC) mdSetWinBottom             = GetProcAddress( mhInstMDCtrl, MDSETWINBOTTOM );
  154.     (FARPROC) mdSetWinTop                = GetProcAddress( mhInstMDCtrl, MDSETWINTOP );
  155.     (FARPROC) mdSetNewParent             = GetProcAddress( mhInstMDCtrl, MDSETNEWPARENT );
  156.  
  157.     (FARPROC) mdSetClippingRegion        = GetProcAddress( mhInstMDCtrl, MDSETCLIPPINGREGION ); 
  158.  
  159.     (FARPROC) mdSetVideoWindowAspect     = GetProcAddress( mhInstMDCtrl, MDSETVIDEOWINDOWASPECT );
  160.     (FARPROC) mdSetVideoAspect           = GetProcAddress( mhInstMDCtrl, MDSETVIDEOASPECT );
  161.     (FARPROC) mdSetVideoOffset           = GetProcAddress( mhInstMDCtrl, MDSETVIDEOOFFSET );
  162.  
  163.     (FARPROC) mdSetVideoPalette          = GetProcAddress( mhInstMDCtrl, MDSETVIDEOPALETTE );
  164.     (FARPROC) mdSetKeyColor              = GetProcAddress( mhInstMDCtrl, MDSETKEYCOLOR );
  165.  
  166.     (FARPROC) mdSetPlaybackSpeed         = GetProcAddress( mhInstMDCtrl, MDSETPLAYBACKSPEED );
  167.  
  168.     (FARPROC) mdSetActivePalette         = GetProcAddress( mhInstMDCtrl, MDSETACTIVEPALETTE );
  169.  
  170.     (FARPROC) mdSetPlayRepeat            = GetProcAddress( mhInstMDCtrl, MDSETPLAYREPEAT );
  171.  
  172.     (FARPROC) mdSetTimeFormat            = GetProcAddress( mhInstMDCtrl, MDSETTIMEFORMAT );
  173.  
  174.     (FARPROC) mdSetParamDirect           = GetProcAddress( mhInstMDCtrl, MDSETPARAMDIRECT );
  175.  
  176. /* ********************************************************************** */
  177. /* ***      Prototypes:   Information Functions   (41)                *** */ 
  178. /* ********************************************************************** */
  179.     (FARPROC) mdGetFileType              = GetProcAddress( mhInstMDCtrl, MDGETFILETYPE );
  180.     (FARPROC) mdGetWindowHandle          = GetProcAddress( mhInstMDCtrl, MDGETWINDOWHANDLE );  
  181.     (FARPROC) mdGetCtrlWindowHandle      = GetProcAddress( mhInstMDCtrl, MDGETCTRLWINDOWHANDLE );
  182.     (FARPROC) mdGetDeviceId              = GetProcAddress( mhInstMDCtrl, MDGETDEVICEID );
  183.     (FARPROC) mdGetFrame                 = GetProcAddress( mhInstMDCtrl, MDGETFRAME );
  184.     (FARPROC) mdGetClipFrame             = GetProcAddress( mhInstMDCtrl, MDGETCLIPFRAME );
  185.  
  186.     (FARPROC) mdGetLength                = GetProcAddress( mhInstMDCtrl, MDGETLENGTH );
  187.     (FARPROC) mdGetClipLength            = GetProcAddress( mhInstMDCtrl, MDGETCLIPLENGTH );
  188.  
  189.     (FARPROC) mdGetPlayState             = GetProcAddress( mhInstMDCtrl, MDGETPLAYSTATE );
  190.     (FARPROC) mdGetDisplayState          = GetProcAddress( mhInstMDCtrl, MDGETDISPLAYSTATE );
  191.  
  192.     (FARPROC) mdGetWinPos                = GetProcAddress( mhInstMDCtrl, MDGETWINPOS );
  193.     (FARPROC) mdGetWinSize               = GetProcAddress( mhInstMDCtrl, MDGETWINSIZE );
  194.  
  195.     (FARPROC) mdGetVideoWinPos           = GetProcAddress( mhInstMDCtrl, MDGETVIDEOWINPOS );
  196.     (FARPROC) mdGetVideoWinSize          = GetProcAddress( mhInstMDCtrl, MDGETVIDEOWINSIZE );  
  197.  
  198.     (FARPROC) mdGetCtrlWinPos            = GetProcAddress( mhInstMDCtrl, MDGETCTRLWINPOS ); 
  199.     (FARPROC) mdGetCtrlWinSize           = GetProcAddress( mhInstMDCtrl, MDGETCTRLWINSIZE );
  200.  
  201.     (FARPROC) mdGetWinX                  = GetProcAddress( mhInstMDCtrl, MDGETWINX );
  202.     (FARPROC) mdGetWinY                  = GetProcAddress( mhInstMDCtrl, MDGETWINY );
  203.     (FARPROC) mdGetWinWidth              = GetProcAddress( mhInstMDCtrl, MDGETWINWIDTH ); 
  204.     (FARPROC) mdGetWinHeight             = GetProcAddress( mhInstMDCtrl, MDGETWINHEIGHT );
  205.  
  206.     (FARPROC) mdGetVideoWinX             = GetProcAddress( mhInstMDCtrl, MDGETVIDEOWINX );
  207.     (FARPROC) mdGetVideoWinY             = GetProcAddress( mhInstMDCtrl, MDGETVIDEOWINY );
  208.     (FARPROC) mdGetVideoWinWidth         = GetProcAddress( mhInstMDCtrl, MDGETVIDEOWINWIDTH );
  209.     (FARPROC) mdGetVideoWinHeight        = GetProcAddress( mhInstMDCtrl, MDGETVIDEOWINHEIGHT );
  210.  
  211.     (FARPROC) mdGetCtrlWinX              = GetProcAddress( mhInstMDCtrl, MDGETCTRLWINX );
  212.     (FARPROC) mdGetCtrlWinY              = GetProcAddress( mhInstMDCtrl, MDGETCTRLWINY );
  213.     (FARPROC) mdGetCtrlWinWidth          = GetProcAddress( mhInstMDCtrl, MDGETCTRLWINWIDTH );
  214.  
  215.     (FARPROC) mdGetAreaClicked           = GetProcAddress( mhInstMDCtrl, MDGETAREACLICKED );
  216.  
  217.     (FARPROC) mdGetOpenFileCount         = GetProcAddress( mhInstMDCtrl, MDGETOPENFILECOUNT );
  218.  
  219.     (FARPROC) mdGetFrameRate             = GetProcAddress( mhInstMDCtrl, MDGETFRAMERATE );
  220.  
  221.     (FARPROC) mdGetPlayedStatus          = GetProcAddress( mhInstMDCtrl, MDGETPLAYEDSTATUS );
  222.  
  223.     (FARPROC) mdGetVolumeLevel           = GetProcAddress( mhInstMDCtrl, MDGETVOLUMELEVEL );
  224.  
  225.     (FARPROC) mdGetVideoImage            = GetProcAddress( mhInstMDCtrl, MDGETVIDEOIMAGE );
  226.     
  227.     (FARPROC) mdGetOrigVideoWinSize      = GetProcAddress( mhInstMDCtrl, MDGETORIGVIDEOWINSIZE );
  228.  
  229.     (FARPROC) mdGetFileName              = GetProcAddress( mhInstMDCtrl, MDGETFILENAME );
  230.  
  231.     (FARPROC) mdGetFramesSkipped         = GetProcAddress( mhInstMDCtrl, MDGETFRAMESSKIPPED );
  232.  
  233.     (FARPROC) mdGetClipFrames            = GetProcAddress( mhInstMDCtrl, MDGETCLIPFRAMES );
  234.  
  235.     (FARPROC) mdGetErrorNumber           = GetProcAddress( mhInstMDCtrl, MDGETERRORNUMBER );
  236.  
  237.     (FARPROC) mdGetPosClicked            = GetProcAddress( mhInstMDCtrl, MDGETPOSCLICKED );
  238.     (FARPROC) mdGetXPosClicked           = GetProcAddress( mhInstMDCtrl, MDGETXPOSCLICKED );
  239.     (FARPROC) mdGetYPosClicked           = GetProcAddress( mhInstMDCtrl, MDGETYPOSCLICKED );
  240.     
  241.     (FARPROC) mdGetVideoPalette          = GetProcAddress( mhInstMDCtrl, MDGETVIDEOPALETTE );
  242.     
  243.  
  244. /* ********************************************************************** */
  245. /* ***   Prototypes:   Graphic Loading and Displaying Functions (7)   *** */ 
  246. /* ********************************************************************** */
  247.     (FARPROC) mdShowGraphic              = GetProcAddress( mhInstMDCtrl, MDSHOWGRAPHIC );
  248.     (FARPROC) mdShowGraphicPos           = GetProcAddress( mhInstMDCtrl, MDSHOWGRAPHICPOS );
  249.     (FARPROC) mdOpenGraphic              = GetProcAddress( mhInstMDCtrl, MDOPENGRAPHIC );
  250.     (FARPROC) mdOpenGraphicKeep          = GetProcAddress( mhInstMDCtrl, MDOPENGRAPHICKEEP );
  251.     (FARPROC) mdCloseGraphic             = GetProcAddress( mhInstMDCtrl, MDCLOSEGRAPHIC );
  252.     (FARPROC) mdHideGraphic              = GetProcAddress( mhInstMDCtrl, MDHIDEGRAPHIC );
  253.     (FARPROC) mdDisplayGraphic           = GetProcAddress( mhInstMDCtrl, MDDISPLAYGRAPHIC );
  254.  
  255. /* ********************************************************************** */
  256. /* ***      Prototypes:   Cursor Setting Functions  (6)               *** */ 
  257. /* ********************************************************************** */
  258.     (FARPROC) mdSetCursor                = GetProcAddress( mhInstMDCtrl, MDSETCURSOR );
  259.     (FARPROC) mdSetVideoCursor           = GetProcAddress( mhInstMDCtrl, MDSETVIDEOCURSOR );
  260.     (FARPROC) mdSetCtrlCursor            = GetProcAddress( mhInstMDCtrl, MDSETCTRLCURSOR );
  261.     (FARPROC) mdResetCursor              = GetProcAddress( mhInstMDCtrl, MDRESETCURSOR );
  262.     (FARPROC) mdResetVideoCursor         = GetProcAddress( mhInstMDCtrl, MDRESETVIDEOCURSOR );
  263.     (FARPROC) mdResetCtrlCursor          = GetProcAddress( mhInstMDCtrl, MDRESETCTRLCURSOR );
  264.  
  265. /* ********************************************************************** */
  266. /* ***      Prototypes: Miscellaneous Functions (9)                   *** */ 
  267. /* ********************************************************************** */
  268.     (FARPROC) mdTimedDelay                = GetProcAddress( mhInstMDCtrl, MDTIMEDDELAY );
  269.     (FARPROC) mdFileDoesNotExist          = GetProcAddress( mhInstMDCtrl, MDFILEDOESNOTEXIST );
  270.     (FARPROC) mdFileDoesExist             = GetProcAddress( mhInstMDCtrl, MDFILEDOESEXIST );
  271.     (FARPROC) mdDisplayErrorMsgs          = GetProcAddress( mhInstMDCtrl, MDDISPLAYERRORMSGS );
  272.     (FARPROC) mdAbout                     = GetProcAddress( mhInstMDCtrl, MDABOUT );
  273.     (FARPROC) mdMCISendString             = GetProcAddress( mhInstMDCtrl, MDMCISENDSTRING );
  274.     (FARPROC) mdCDEject                   = GetProcAddress( mhInstMDCtrl, MDCDEJECT );
  275.     (FARPROC) mdSetupPlayStateCallback    = GetProcAddress( mhInstMDCtrl, MDSETUPPLAYSTATECALLBACK );
  276.     (FARPROC) mdSetupCustBtnClickCallback = GetProcAddress( mhInstMDCtrl, MDSETUPCUSTBTNCLICKCALLBACK );
  277.     
  278. /* ********************************************************************** */
  279. /* ***      Prototypes:   Audio Record Procedures  (5)                *** */ 
  280. /* ********************************************************************** */
  281.     (FARPROC) mdWaveRecordInit           = GetProcAddress( mhInstMDCtrl, MDWAVERECORDINIT );
  282.     (FARPROC) mdWaveClose                = GetProcAddress( mhInstMDCtrl, MDWAVECLOSE ); 
  283.     (FARPROC) mdWaveRecord               = GetProcAddress( mhInstMDCtrl, MDWAVERECORD );
  284.     (FARPROC) mdWaveRecordSave           = GetProcAddress( mhInstMDCtrl, MDWAVERECORDSAVE );
  285.     (FARPROC) mdWaveRecordPlayback       = GetProcAddress( mhInstMDCtrl, MDWAVERECORDPLAYBACK );
  286.                                     
  287. /* ********************************************************************** */
  288. /* ***      Prototypes:     Secure A/V Functions  (3)                 *** */ 
  289. /* ********************************************************************** */
  290.     (FARPROC) mdRemoveAllSecureAVDrivers = GetProcAddress( mhInstMDCtrl, MDREMOVEALLSECUREAVDRIVERS );
  291.     (FARPROC) mdInstallSecureAVDriver    = GetProcAddress( mhInstMDCtrl, MDINSTALLSECUREAVDRIVER );
  292.     (FARPROC) mdRemoveSecureAVDriver     = GetProcAddress( mhInstMDCtrl, MDREMOVESECUREAVDRIVER );
  293.  
  294.  
  295. /* ********************************************************************** */
  296. /* ***      Prototypes:     Error Handling  (3)                       *** */ 
  297. /* ********************************************************************** */
  298.     (FARPROC) mdGetErrorNumber           = GetProcAddress( mhInstMDCtrl, MDGETERRORNUMBER );   
  299.     (FARPROC) mdGetErrorText             = GetProcAddress( mhInstMDCtrl, MDGETERRORTEXT ); 
  300.     (FARPROC) mdLogErrors                = GetProcAddress( mhInstMDCtrl, MDLOGERRORS );         
  301.  
  302. /* ********************************************************************** */
  303. /* ***      Prototypes:     Forced Shutdown/Load  (2)                 *** */ 
  304. /* ********************************************************************** */
  305.     (FARPROC) mdCloseLibrary             = GetProcAddress( mhInstMDCtrl, MDCLOSELIBRARY );
  306.     (FARPROC) mdOpenLibrary              = GetProcAddress( mhInstMDCtrl, MDOPENLIBRARY );  
  307.  
  308.     return TRUE;
  309.     
  310. }
  311.  
  312.  
  313.  
  314.  
  315. /* ********************************************************************** */
  316. /* ***                     UnloadMDCtrlLibrary                        *** */
  317. /* ***                                                                *** */
  318. /* ***  Unload the Media Control Library functions.                   *** */
  319. /* ***                                                                *** */
  320. /* ********************************************************************** */
  321. BOOL WINAPI UnloadMDCtrlLibrary( void )
  322. {
  323.     
  324.     if ( mhInstMDCtrl == NULL )
  325.         return FALSE;  // Was not previously loaded
  326.         
  327.     FreeLibrary( mhInstMDCtrl );
  328.     
  329.     return TRUE;
  330.     
  331. }
  332.  
  333.